鱼C论坛

 找回密码
 立即注册
查看: 2179|回复: 6

没搞明白

[复制链接]
发表于 2012-5-27 20:26:13 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
#include<malloc.h>
void main()
{
          int n, i;
         printf("n: ");
         scanf("%d", &n);
         int *p = (int*)malloc( sizeof(int)*n );
         for(i = 0; i < n; i++)
         scanf("%d", p+i);
        for(i = 0; i < n; i++)
        printf("%d", p[i]);
        free(p);
}

请问这个为什么会有错误?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-27 20:56:38 | 显示全部楼层
C语言变量的声明前不能有可执行语句。 int *p = (int*)malloc( sizeof(int)*n );这句位置错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-27 21:24:56 | 显示全部楼层
用Cfree编译后 表示无问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-27 21:33:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-27 21:43:19 | 显示全部楼层
友来友网 发表于 2012-5-27 21:33
我用的是VC++6.0

用VC2008编译无出错  用VC6++就出错了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-27 23:17:14 | 显示全部楼层
scanf("%d", p+i);老大这里不是%,而是取地址符&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-28 10:21:47 | 显示全部楼层
把你的头文件#include <stdio.h>  换成#include "stdafx.h"      你这个代码没有任何问题,就是头文件包含的问题,所以跟编译器有关系,我用的VC6.改成这样就好了,还有目前在VC6写代码基本都用的stdafx  。这个还要看你文件格式,如果你的文件是.c文件就用的stdio.h  如果你的文件是.cpp文件,那就要用stdafx.h。  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表