用calloc分配10块大小为4字节的内存空间,打印指针地址,并且打印出内存中的内容

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int main(void)

{

int  i;

int *str = NULL;

str = (int*)calloc(10, sizeof(int));

if(str==NULL)

{

printf("calloc error!\n");

return -1;

}

printf("start addr: %p\n", str);

printf("Memory contents:");

for(i=0;i<10;i++)

{

printf("%d ",str[i]);

}

printf("\n");

free(str);

return 0;

}

时间: 2024-10-11 06:20:58

用calloc分配10块大小为4字节的内存空间,打印指针地址,并且打印出内存中的内容的相关文章

Linux显示指定区块大小为1024字节

[email protected]:~$ df -k 文件系统 1K-blocks 已用 可用 已用% 挂载点 /dev/sda8 19554840 7431164 11107292 41% / none 4 0 4 0% /sys/fs/cgroup udev 1540740 4 1540736 1% /dev tmpfs 310308 1472 308836 1% /run none 5120 0 5120 0% /run/lock none 1551532 156 1551376 1% /

Linux显示指定区块大小为1048576字节

[email protected]:~$ df -m 文件系统 1M-blocks 已用 可用 已用% 挂载点 /dev/sda8 19097 7283 10822 41% / none 1 0 1 0% /sys/fs/cgroup udev 1505 1 1505 1% /dev tmpfs 304 2 302 1% /run none 5 0 5 0% /run/lock none 1516 1 1516 1% /run/shm none 100 1 100 1% /run/user /d

使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> int main(void) { int *str1 = NULL; int *str2 = NULL; str1 = (int*)malloc(2*1024*sizeof(char)); if(str1==NULL) { printf("malloc error!\n"); return

使用malloc分别分配2KB,6KB的内存空间,打印指针地址

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> int main(void) { int *str1 = NULL; int *str2 = NULL; str1 = (int*)malloc(2*1024*sizeof(char)); str2 = (int*)malloc(6*1024*sizeof(char)); if(str1==NULL || st

C和C指针小记(十六)-动态内存分配

动态内存分配 1.1 为什么使用动态内存分配 直接声明数组的方式的缺点: 1) 声明数组必须指定长度限制.无法处理超过声明长度的数组. 2) 如果声明更大的常量来弥补第一个缺点,会造成更多的内存浪费. 3)如果输入数组的数据超过来数组的容纳范围,程序必须以一种合理的方式作出响应.但是程序员一般不会做这个判断. 1.2 malloc 和 free malloc 和 free 分别用于执行动态分配内存和释放. stdlib.h 中声明来这两个函数的原型 void malloc( size_t siz

牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证: 1、放进去的鱼是安全的,不会被其他鱼吃掉 2、这条鱼放进去也不能吃掉其他鱼

牛牛有一个鱼缸.鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸.鱼缸内存在着大鱼吃小鱼的定律.经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B.考虑到这个,牛牛要放入的鱼就需要保证:1.放进去的鱼是安全的,不会被其他鱼吃掉2.这条鱼放进去也不能吃掉其他鱼鱼缸里面已经存在的鱼已经相处了很久,不考虑他们互相捕食.现在知道新放入鱼的大小范围[minSize,max

在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

//在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’:输出这个数组中的所有元素. char [][]y=new char [10][10]; for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { if(i==j||i+j==9) { y[i][j]='*'; } else { y[i][j]='#'; } } } for(int i =0;i<10;i++) { for(int k

给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的位置,如果sum=x则返回true, 3,找到位置后,保持i不变,从k处向前遍历,直到找到A[k]+A[i]等于x,并返回TRUE,如果找不到,则返回false. 论证步骤3:当前找到的位置恰好A[k]+A[i]>x,且前一位置的sum<x: 所以A[i]前面的数(不包括A[i])无论取哪两个数都

有这样一个数组A,大小为n,相邻元素差的绝对值都是1。

有这样一个数组A,大小为n,相邻元素差的绝对值都是1.如:A={4,5,6,5,6,7,8,9,10,9}.现在,给定A和目标整数t,请找到t在A中的位置.除了依次遍历,还有更好的方法么? 思路:数组第一个数为array[0], 要找的数为y,设t = abs(y - array[0]).由于每个相邻的数字之差的绝对值为1.故第t个位置之前的数肯定都比y小.因此直接定位到array[t],重新计算t,t = abs(y – array[t]),再重复上述步骤即可.这种算法主要利用了当前位置的数与