我一直试图了解什么是 malloc() 以及为什么要使用它。我知道 malloc 用于动态分配内存,如果您不知道要创建多少内存,则需要它。我一直在做一些动手操作。
下面的代码声明了一个字符指针数组,第一个字符指针用“hello”初始化。这工作正常。
int main()
{
char *strarray[5];
strarray[0]="hello";
printf("%s\n",strarray[0]);
return 0;
}
但是,如果我尝试使用 strcpy() 函数将“hello”字符串复制到 strarray[0](没有 malloc()),就会出现问题。它进入一些循环并且不复制字符串。如果我使用 malloc 分配内存,它工作正常。
int main()
{
char *strarray[5];
//strarray[0]=(char *)malloc(sizeof(char)*10);
strcpy(strarray[0],"hello");
printf("%s\n",strarray[0]);
return 0;
}
我想知道有什么不同?如果我可以将“hello”初始化为不使用 malloc 的 char 指针,为什么我不能对 strcpy() 做同样的事情。