c - 分配10kb内存并打印地址和内容

标签 c malloc

我想创建一个程序,该程序应分配 10kb 内存并以 4 个字节为一组打印内存地址及其内容。这是我想要的输出:

0XAABBCCEB CDCDCDCD
0XAABBCCD8 FFA0B0C0
0XAABBCCD4 00FF00FF
0XAABBCCD0 00000000

我真的不知道如何获得该输出。我知道我需要使用 malloc 并且我知道我需要使用正确的运算符以十六进制形式打印它,但我不知道如何打印内容以及如何准确分配 10kb

最佳答案

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define _10KB 10240

int main(){
    int i;
    uint32_t *arr;
    if((arr = malloc(_10KB)) == NULL){
        perror("malloc failed");
    }
    for(i = 0; i < (_10KB/4); i++){
        printf("0x%p  %.8x\n", &arr[i], arr[i]);
    }
    free(arr);
    return 0;
}

关于c - 分配10kb内存并打印地址和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51986342/

相关文章:

C. 函数修改动态分配的二维数组时出现段错误

c - 如何从函数返回一个 char 值?在 Unix 中

c - 将 sbrk 的结果分配给指针时的对齐问题 - K&R

c - 地址未被堆叠、分配或(最近)释放

c - 如何定义宏?

c - 如何在 C 中向 double 组添加值

c - 为什么 "a"的输出是 -80?

c++ - 为多线程环境包装 c++ new/delete 的安全/好方法

c - 为什么我的二维数组代码可以使用 malloc(0)?

c - 为什么这个使用 malloc 的非常基本的 C 代码会崩溃?