/****************************************************************************************
//函式作用創建指標X存盤10個地址,每個地址存盤10個4位元組資料;第一個地址存盤隨機資料,第二個地址存盤資料在第一個地址資料上加1,第三個地址存盤在第二個地址資料加1
****************************************************************************************/
#include<iostream>
#include<stdlib.h>
#include<time.h>
int** t_rand();
using namespace std;
int main()
{
int **g= t_rand();
for(int i = 0;i<10;i++)
{
for(int j = 0; j <10;j++)
{
cout<<g[i][j]<<" ";
}
cout<<endl;
}
getchar();
return 0;
}
int** t_rand()
{
time_t t;
srand((unsigned) time(&t));
int **x;
x =(int **) malloc(10 * sizeof(int *));
int *p;
p =(int *)malloc(10 * sizeof(int));
for(int i =0;i<10;i++)
{
*(p+i) = rand()&100;
}
x = &p;
for (int i = 1;i<10;i++)
{
int* o ;
o = (int *)malloc(10 * sizeof(int));
for(int j = 0;j<10;j++)
{
int temp = *(*(x+i-1)+j) +1;
*(o+j) = temp;
}
*(x+i) = o;
}
return x;
}
uj5u.com熱心網友回復:
int** t_rand(){
time_t t;
srand((unsigned) time(&t));
int **x;
x =(int **) malloc(10 * sizeof(int *));//這里你開辟了一個指標。
int *p;
p =(int *)malloc(10 * sizeof(int));
for(int i =0;i<10;i++)
{
*(p+i) = rand()&100;
}
x = &p;//這里你又把上一次開辟的指標指向了&p,而&p這是一個臨時的變數,這個臨時的指標變數指向了p這個變數的地址
for (int i = 1;i<10;i++)
{
int* o ;
o = (int *)malloc(10 * sizeof(int));
for(int j = 0;j<10;j++)
{
int temp = *(*(x+i-1)+j) +1;
*(o+j) = temp;
}
*(x+i) = o;
}
return x;//之后又把它回傳出去,錯誤大大的。建議先把指標的基本操作掌握,再探究其內情。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/249953.html
標籤:C++ 語言
上一篇:為什么我這個printf(“%c“,a【i】.data)輸出不了啊
下一篇:TM1620數碼管驅動
