C++动态分配字符串数组的问题

2025-02-26 14:55:49
推荐回答(3个)
回答1:

#include
#include
int main()
{
int i;
char *str[10];
for (i=0; i<10; i++)
{
str[i]=(char *)malloc(32); //为指针动态分配内存后才能使用
scanf("%s", str[i]);
}
return 0;
}

回答2:

char *str[10];
for(int i=0; i<10; i++)
{
str[i] = new char[32]; /// 如果没有这行,程序当然就崩溃了
scanf("%s", str[i]);
}

回答3:

* [];这句改成
char ** str = new char * [2];
就正确了

楼主申请空间的时候,并不知道大小怎么去释放?
在VS6里楼主的编译确实不会报错
但是其实语法是错误的,楼主的代码直接拷贝到LINUX下连编译都不会通过的
不知道理解的对不对
反正就是这么改正就OK了,平时的编程习惯