内存分配成功,但并未初始化
生活随笔
收集整理的這篇文章主要介紹了
内存分配成功,但并未初始化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內存分配成功,但并未初始化
(1)犯這個錯誤往往是由于沒有初始化的概念或者是以為內存分配好之后其值自然為0。
(2)在定義一個變量時,第一件事就是初始化。你可以把它初始化為一個有效的值,比如:
? int i = 10;
?char *p = (char *)malloc(sizeof(char));?
但是往往這個時候我們還不確定這個變量的初值,這樣的話可以初始化為0 或NULL。?
int i = 0;?
char *p = NULL;?
如果定義的是數組的話,可以這樣初始化: int a[10] = {0}; 或者用memset 函數來初始化為0:?
memset(a,0,sizeof(a)); memset 函數有三個參數,第一個是要被設置的內存起始地址;第二個參數是要被設置的值;第三個參數是要被設置的內存大小,單位為byte。這里并不想過多的討論memset 函數的用法,如果想了解更多,請參考相關資料。
(1)犯這個錯誤往往是由于沒有初始化的概念或者是以為內存分配好之后其值自然為0。
(2)在定義一個變量時,第一件事就是初始化。你可以把它初始化為一個有效的值,比如:
? int i = 10;
?char *p = (char *)malloc(sizeof(char));?
但是往往這個時候我們還不確定這個變量的初值,這樣的話可以初始化為0 或NULL。?
int i = 0;?
char *p = NULL;?
如果定義的是數組的話,可以這樣初始化: int a[10] = {0}; 或者用memset 函數來初始化為0:?
memset(a,0,sizeof(a)); memset 函數有三個參數,第一個是要被設置的內存起始地址;第二個參數是要被設置的值;第三個參數是要被設置的內存大小,單位為byte。這里并不想過多的討論memset 函數的用法,如果想了解更多,請參考相關資料。
總結
以上是生活随笔為你收集整理的内存分配成功,但并未初始化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为指针分配的内存太小
- 下一篇: 常见的内存错误