| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 292 人关注过本帖
标题:求大神大侠!!!
只看楼主 加入收藏
williamweng
Rank: 1
等 级:新手上路
帖 子:34
专家分:2
注 册:2010-10-7
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:3 
求大神大侠!!!
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE (8)

struct T{
    char flag[4];
    char ch;
};

int main(){
    struct T * array = malloc(sizeof(struct T)*SIZE);
    
    memset(array, -1,5 * SIZE);
    
    printf("===dump array===\n");
    int i,j;
    for(i=0;i<SIZE;i++){
        printf("array[%d]\tflag=",i);
        for(j=0;j<4;j++)
            printf("%x",array[i].flag[4]);
        printf("\tch=%d\n",array[i].ch);
    }
    printf("===end===\n");
    free(array);
    return 0;
}

这个程序是好的,但为什么我之前没在定义flag那里加上大小,出来的结果就是乱码的呢?
2012-11-13 22:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
没定义大小  就是单个字符  不是数组

DO IT YOURSELF !
2012-11-13 22:03
williamweng
Rank: 1
等 级:新手上路
帖 子:34
专家分:2
注 册:2010-10-7
收藏
得分:0 
回复 2楼 wp231957
有点小遗漏,我之前定义的是int flag;
2012-11-13 22:05
班哥
Rank: 2
等 级:论坛游民
帖 子:7
专家分:13
注 册:2012-11-13
收藏
得分:4 
个人认为:struct第一的时候必须确定所占的存储单元,所以必定有具体数值,你也可以像上面的那个一样,在flag后面加上个字符,比如maxlen ,然后上面用define定义 。

这是个屌丝逆袭的时代
2012-11-13 22:05
快速回复:求大神大侠!!!
数据加载中...
 
   



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

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