一、malloc怎么申请空间呐
1、malloc是动态内存存储
2、它存储在堆当中
3、声明:
void *malloc(size_t size)
- size -- 内存块的大小,以字节为单位。
- 该函数返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回 NULL
4、举个栗子
int main()
{
int n, sum = 0;
int i = 0;
int* p;
printf("Enter n:");
scanf("%d", &n);
if ((p = (int*)malloc(n * sizeof(int))) == NULL)
{
printf("Not able to allocate memeory.\n");
exit(1);
}
printf("Enter %d integers:",n);
for(i=0;i<n;i++) scanf("%d",p+i);
for (i = 0; i < n; i++) sum=sum+*(p+i);
printf("The sum is %d\n",sum);
free(p);
return 0;
}
解决了吧!
二、那我用char呐?
int main()
{
char* arr;
arr = (char *)malloc(15);
strcpy(arr, "runoob");
printf("String = %s, Address = %u\n", arr, arr);
/* 重新分配内存 */
arr = (char*)realloc(arr, 25);
strcat(arr, ".com");
printf("String = %s, Address = %u\n", arr, arr);
free(arr);
return(0);
}