RT,
要求追加后的数组名不变。。
也就是说比如有数组 A[10],
我希望追加空间至 A[15],当然前面A[10]内的东西不变咯。
另,以下是我自己的想法,但请不必按我的想法去考虑。
我想用malloc和remalloc,但是确发现一个数组大小一旦确定,
这个数组名是无法作为表达式的左值,所以不知道如何解决。
希望达人赐教,在这里小弟先谢过了。
您好,
您所谓的动态内存分配是指malloc和remalloc吧??
但是用它们又如何实现数组名不改变而数组的空间却变大呢???
因为C里的数组名是常量,SO如何给一个已经定容的数组扩容呢??
就是因为数组名无法作为左值,
所以没法给它直接增加空间啊。
呵呵,我知道这个问题应该蛮简单的,但是确实不知道如何解决。
还望赐教
谢谢您,呵呵。
但是您这里的p是指针,而不是数组。
问题就在于此了。
申请到的只是一个空间,返回的是一个指针,
而指向这个空间的指针是无法赋值给原本的那个数组名的。。。
。。。
我说的不够明白?? - - ||
就是要给它增大空间啊,不把申请到的空间加到它上面,
怎么给它增大空间??
恩``
谢谢论坛和wind斑斑。。我改用动态了,但为什么我这样的是错的啊??typedef struct test{ int a; char arr[10]; int b;}test;test *Ptest;Ptest = (test *)malloc(2*sizeof(test));
错误: 1。 缺少存储类或类型说明符 2。“Ptest” : “int”与“test *”的间接寻址级别不同 3. “初始化” : 无法从“test *”转换为“int”
谢谢haishanglang
你帖出来的程序给了我点灵感,
我是把那个指针及申请空间都直接放在程序最上方,想做为一个全局变量来着。
但是一直有上面那几个错误,
我刚试了下,将这两个放到main函数里就OK了。
但不知道这是为什么。。。难道是申请空间必须放在主函数下?
而不能在main 函数外??
再次感谢各位的热心帮忙``
问题基本上解决了。
:)