1樓:
不要懷疑c=m+n就不能用c申請記憶體,動態申請記憶體的初衷就是要解決這類問題。你的問題在
for (i = 0, j = 0, k = 0; i < c; i++)
else
這一段。c的長度是m、n之和,你for (i = 0, j = 0, k = 0; i < c; i++)這樣用c控制迴圈,中間肯定要使a陣列或b陣列越界,出現亂碼就很正常了!
2樓:匿名使用者
不是初始化的問題,是你的迴圈寫的有問題, p[i] = a[j]; 這一句,你的j的迴圈範圍不對,你陣列a的大小是n,你卻用m在迴圈,所以讀越界了。
3樓:匿名使用者
#include
using namespace std;
int main(void)
cout << "請輸入陣列b的 " << m << " 個元素:";
for (i = 0; i> b[i];
}for (i = 0; i a[j])
}for (i = 0; i b[j])
}for (i = 0, j = 0, k = 0; k < n + m; k++)
else if(j < m)
}cout << "陣列a為:";
for (i = 0; i
4樓:
因為c開始的陣列長度不是乙個定值
5樓:匿名使用者
程式有邏輯錯誤:
if (a[j] <= b[k])
...此處應該是這樣寫:
if (j p 1,是把1賦值給p所指向的物件,而p 1是把1賦值給p,這個1是被當做位址的。p 1和p 1是不同的概念,p 1 是賦值語句,還有在c語言中 1 0 是作為真假來用的,就相當於布林型數一樣。這兩個語句都是合法的。區別就是指標 的意思是取位址的意思。p是乙個指標,他的值是記憶體中一塊記憶體的位址,... 定義結構體指標變數時,只分配儲存指標型別需要的空間,比如listnode p 這裡p有給他分配儲存指標的4個位元組的空間。實際上你是要讓p指向一個結構體空間的,這個結構體空間在哪?可以先定義listnode a 然後 p a 這時p指向一個之前申請分配過空間 編譯器設定過其地址和大小,在棧空間存放著... 沒有a 這種賦值方法,改成 a.age 10 a.cass 3 或b age 10 b class 3 都行。另 class是c 關鍵字,若使用的是c 相容的c編譯器,則過不了編譯,應另起一名,如class,或classs等。c語言 結構體變數的引用的問題 你問的兩個問題都跟結構體無關。strcpy...c指標變數的問題,C語言指標變數大小的問題
C語言中連結串列中的結構體指標變數問題求教
關於c語言結構體變數成員引用的問題