C语言关于字符串复制与连接的问题请教`

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:04:57
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

void main()
{
int i;
char *cpcard[52];
char c[9][3]={"ab","cd","ef","gh","ij","kl","mn","te"},b[9][3]={"A","B","C","D","E","F","G","H"};

for(i=0;i<9;i++)
{
strcpy(cpcard[i],c[i]);

strcat(cpcard[i],b[i]);
printf("%s",cpcard[i]);
}
}
为什么运行时候会出错?
你的运行没有“遇到问题需要关闭。我们对此引起的不便表示抱歉。”的情况吗??

在你的程序中没有new开辟,也就是说strcpy(cpcard[i],c[i]); strcat(cpcard[i],b[i]); 这些语句执行的时候是对一个没有明确开辟过的空间进行操作,出错是很正常的,,如果想更正,只需要在循环里
strcpy(cpcard[i],c[i]); 前面加一句cpcard[i]=new char[4],这样可以避免这个问题

没有出错啊
你说出错了,具体是什么错误啊?