新学分配内存

走好每一步 2009-01-12 01:44:16

#include <stdio.h>
#include <malloc.h>

void main(){
int *elem = (int *) malloc ( 5 * sizeof(int) );

elem[1] = 2; // 为什么有这句就会有 error C2143: syntax error : missing ';' before 'type', 没有的话是正确的。


int *newbase = (int *) realloc(elem, 10 * sizeof(int) );

}
...全文
83 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
走人, 看书复习去,还要考试呢
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
确实那样是正确的
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
9楼代码,我自己早试过了,只是不明白为什么而已
xiaoyisnail 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 tajon1226 的回复:]
不对,文件名是.c的时候是错误的, .c++是正确的, 为啥呢

[/Quote]

那就是像9楼说的那个问题了,试试9楼的代码就知道了
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
嗯嗯, 9 楼, 谢谢了
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
不对,文件名是.c的时候是错误的, .c++是正确的, 为啥呢
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
那可能是我程序没装好的问题了
lbh2001 2009-01-12
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int *elem = (int *) malloc ( 5 * sizeof(int) );

int *newbase = (int *) realloc(elem, 10 * sizeof(int) );

elem[1] = 2; //放到这里,C89只允许在语句前声明变量,c99和C++没有此限制

free(elem); //记得释放
free(newbase);
return 0;
}
nullah 2009-01-12
  • 打赏
  • 举报
回复
up~~
我不是大明 2009-01-12
  • 打赏
  • 举报
回复
从语法上看没有问题。

而且在Windows 使用VC6 编译过没有问题。
xiaoyisnail 2009-01-12
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <malloc.h>

void main(){
int *elem = (int *) malloc ( 5 * sizeof(int) );
elem[1] = 2;
int *newbase = (int *) realloc(elem, 10 * sizeof(int) );
}


vc6下毫无问题
xiaoyisnail 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tajon1226 的回复:]
visual c++ 6.0
[/Quote]

vc6可以通过编译的啊
traceless 2009-01-12
  • 打赏
  • 举报
回复
程序本身没错误呀

估计LZ用的是TC吧
tc下是不能把声明语句放在执行语句之后的

用其他的编译器编译吧
wwmwenzhu 2009-01-12
  • 打赏
  • 举报
回复
vc6.0编译通过!!
走好每一步 2009-01-12
  • 打赏
  • 举报
回复
visual c++ 6.0
xiaoyisnail 2009-01-12
  • 打赏
  • 举报
回复
楼主用的哪个编译器啊?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧