| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2032 人关注过本帖
标题:关于malloc问题
取消只看楼主 加入收藏
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
关于malloc问题
n个人围一圈报数,报到3的就退出,求最后一个人是原来的几号
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int n,i,j,k;
    int*a;
    printf("input n:");
    scanf("%d",&n);
    a=(int*)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
        *(a+i)=i+1;
    i=0;
    j=0;
    k=0;
    while(j<n-1)
    {
        if(*(a+i)!=0)k++;
        if(k==3)
        {
            k=0;
            *(a+i)=0;
            j++;
        }
        i++;
        if(i==n)i=0;
    }
    while(*a==0)a++;
    printf("the last one is:%d\n",*a);

}
这是没问题的,可是
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int n,i,j,k;
    printf("input n:");
    scanf("%d",&n);
    int*a=(int*)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
        *(a+i)=i+1;
    i=0;
    j=0;
    k=0;
    while(j<n-1)
    {
        if(*(a+i)!=0)k++;
        if(k==3)
        {
            k=0;
            *(a+i)=0;
            j++;
        }
        i++;
        if(i==n)i=0;
    }
    while(*a==0)a++;
    printf("the last one is:%d\n",*a);

}
这样就不行了,a指针那样分配内存空间有什么问题吗?下面是问题:
10.5.c(8) : error C2143: syntax error : missing ';' before 'type'
10.5.c(10) : error C2065: 'a' : undeclared identifier
10.5.c(10) : error C2100: illegal indirection
10.5\10.5.c(10) : error C2106: '=' : left operand must be l-value
10.5.c(16) : error C2100: illegal indirection
10.5.c(20) : error C2100: illegal indirection
10.5.c(20) : error C2106: '=' : left operand must be l-value
10.5.c(26) : error C2100: illegal indirection
10.5.c(27) : error C2100: illegal indirection
搜索更多相关主题的帖子: include 
2011-04-07 00:29
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
声明+初始化指针?有问题吗?int i=1;
2011-04-07 01:32
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
不理解, {  ??关于声明的资料出自哪里?我现在的书没有怎么提及声明问题
2011-04-07 01:42
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
就是说所有的声明都必须是紧跟在{后面的,中间不能加入其他语句是吧?
2011-04-07 01:50
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
我用的是VC6.0,这个不好吗?
另外声明只要位于一个块的最开始就行了   这是C89的吗?
2011-04-07 20:45
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
回复 10楼 pangding
我用的是VC6.0,这个不好吗?
另外声明只要位于一个块的最开始就行了   C89的可以吗?
2011-04-07 20:48
快速回复:关于malloc问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042106 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved