高手帮帮我,动态分配数组存储如下数据,难啊.
dssddsssdddfsd
dsbdgbdssdddd
dasaadfafff
sddfffddsffffds
要求,一切动态,不能这样
char **str=(char **)malloc(sizeof(char*)*10);
int i=0;
for (i=0; i<10; i++)
str[i]=(char *)malloc(sizeof(char)*100);
即对第一元素的大小也动态分配,如上str[i]=(char *)malloc(sizeof(char)*100);关键是那个100难倒我了,要采用动态分配,怎么办?
[解决办法]
那个100也可以用变量的阿。
[解决办法]
1)如果可以知道这些字符串的大小,则可以使用GetLength()来得到大小,然后最使用new,delete,这个主要是为了调用char的构造函数和析构函数。
2)记录数是否可以得到,如果可以得到也可以使用。
3)如果是字符串,则没有必要那么麻烦,字符串提供的getbuffer就可以得到char*类型
[解决办法]
如果是文本,建议楼主以换行为单位读取每行的大小相加(文本有结束标志)得到大小。