注册 登录
编程论坛 C语言论坛

使用bzero或者memset对每维清零后赋不起值

Mrluoyuzhao 发布于 2021-09-02 16:44, 1231 次点击
#include <stdio.h>
#include <string.h>

int main()
{
        char buf[3][3];
        int i;
        int j;

        for (i = 0; i < 3; i++) {
            for (j = 0; j < 3; j++) {
                bzero(buf[i], 3);
                buf[i][j] = '1';
                printf("buf[%d][%d]:%c\n", i, j, buf[i][j]);                                
            }
        }
        for (i = 0; i < 3; i++) {                                                                    
            for (j = 0; j < 3; j++) {                                                                    
                printf("%p,%p\n", buf[i], &buf[i][j]);                                             
                printf("buf[%d][%d]:%c\n", i, j, buf[i][j]);
            }                                                                           
        }

        return 0;
}
// buf[]每个维度(指针)地址我也打印出来没问题的,但是bzero后就是赋不起值,请问各位大佬是怎么回事呢
2 回复
#2
自由而无用2021-09-02 17:06
for (i = 0; i < 3; i++) {
    bzero(buf[i], 3);
    for (j = 0; j < 3; j++) {
        buf[i][j] = '1';
        printf("buf[%d][%d]:%c\n", i, j, buf[i][j]);                                
    }
}
#3
Mrluoyuzhao2021-09-02 17:18
回复 2楼 自由而无用
你这是啥意思哦??
#4
rjsp2021-09-02 18:59
位置错了,但把 bzero(buf[i], 3); 删掉更好,在你这段代码中没作用。
1