char first[]="aa";
strcat(first,ar[0]);
char *second[10];
strcpy(second[0],first);
我想使用strcat和strcpy。 strcat有效,但strcpy有错误。我怎么修改它?
答案 0 :(得分:0)
在C语言中,基本上有三种字符串/字符数组变量:
对于动态数组,程序运行时会保留它使用的内存。下面的程序说明了三种不同的情况。它还为内存分配提供了方便的宏。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NEW_ARRAY(ptr, n) \
{ \
(ptr) = malloc((n) * sizeof (ptr)[0]); \
if ((ptr) == NULL) { \
fprintf(stderr, "error: Memory exhausted\n"); \
exit(EXIT_FAILURE); \
} \
}
int main(void)
{
const char *s1 = "foo";
char s2[4] = "bar";
char *s3;
NEW_ARRAY(s3, 4);
strcpy(s3, "baz");
return 0;
}