動態分配指針數組(以解決)


 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {
 6     int **pointer = (int **)(malloc(5 * sizeof(int *))); //此處沒有問題,動態內存分配,分配了一個指針數組,數組元素是指向int的指針  7 
 8     int a = 100;
 9     printf("Please input 5 numbers:\n");
10     /*for (int i = 0; i < 5; ++i) {       此注釋部分有問題的,但還沒發現哪里出現了問題,在《指針作參數的動態內存分配與二重指針上》中的代碼中也有解釋
11         scanf("%d", pointer[i]);          我們要對指針數組中的指針元素賦值啊,scanf語句是對指針元素所指向的整型數據賦值了,所以程序會崩潰!細節問題加深理解。
12     }*/
13     printf("\nThe order is:\n");
14     for(int i = 0; i < 5; ++i) {
15         pointer[i] = &a;                  //這樣就沒有問題了,同樣是對pointer[i]賦值。。。回頭在研究。。。 16         printf("%d  ", *pointer[i]);
17     }
18 
19     free(pointer);
20     return 0;
21 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM