C動態分配的問題,C 動態分配字串陣列的問題

2022-11-15 01:26:15 字數 3153 閱讀 8851

1樓:匿名使用者

使用stl(標準模板庫)中的vector(向量)或者list,但是個人覺得你這種情況vector比較方便,stl提供了一些通用的資料型別,你可以通過其成員函式實現一些通用的操作而不必關心它是如何實現的

具體的vector使用可以在網上找到非常多的教程,下面簡單顯示一下你的問題中的使用方法

……#include "vector"

using namespace std;

……double x;

vectora;//這裡僅僅申請一個a的vector變數,但其中沒有任何元素,大小不定,需要做的就是從文字中讀取資料並依次新增到其末尾

……//從文字中讀取迴圈讀取資料到x,直到檔案結束

//push_back()是vector的成員函式,作用是將一個元素新增到a的末尾

//迴圈結束

//訪問

for(int i=0; i

2樓:匿名使用者

class node

class link

弄一個連結串列就可以了麼,

每讀出來一個數,就new一個node物件出來。

之後連結到連結串列最後tail處。只要儲存第1個節點的地址head,整個連結串列都儲存下來了。

你要訪問連結串列,那麼你在node類中,做一個標識咯。

c++動態分配字串陣列的問題

3樓:匿名使用者

* ;這句改成

char ** str = new char * [2];

就正確了

樓主申請空間的時候,並不知道大小怎麼去釋放?

在vs6裡樓主的編譯確實不會報錯

但是其實語法是錯誤的,樓主的**直接拷貝到linux下連編譯都不會通過的

不知道理解的對不對

反正就是這麼改正就ok了,平時的程式設計習慣

4樓:匿名使用者

#include

#include

int main()

return 0;}

5樓:匿名使用者

char *str[10];

for(int i=0; i<10; i++)

c++陣列動態分配空間

6樓:匿名使用者

如果不是必須使用陣列的話,建議你使用容器 list和vector都可以~~~

不需要分配地址空間的,都是自增長型別~~~

7樓:新奕秀穎

可以利用c語言中的malloc.h標頭檔案

#include

...int n=0;

int *array=(int *)malloc((n+1)*sizeof(int));

輸入n,就可以定義一個下標從0到n的陣列。

8樓:知道

用new關鍵字(這是c++語言):

#include

using namespace;

void main()

用以上**就可定義一個h陣列,大小為a;

對於第二個問題,我試過了,可以。

9樓:匿名使用者

你的程式中的常整形變數const int n=num;其中n只有在程式執行起來的時候才能知道n的值是多少,因為你的n(常整形)是通過傳進來的引數來進行賦值操作的,然而陣列分配空間的時候必須事先知道陣列的大小,所以,會出現錯誤的bug

10樓:匿名使用者

為什麼不用連結串列呢!連結串列你想多長就多長

c++題:關於動態儲存分配,下列說法正確的是?

11樓:匿名使用者

選項a,錯,new 與delete是用於動態平衡分配與釋放空間的運算子,不是函式

選項b,對,如int *p=new int(5);

選項c,錯,要使用delete釋放空間,系統會統一管理,而不用delete釋放的空間,會造成記憶體洩漏,這種程式用的次數多,會造成記憶體耗盡

選項d,錯,不成功,會返回0。

12樓:匿名使用者

a、new和delete是c++語言中專門用於動態記憶體分配和釋放的函式 。 new和delete不是函式,是操作符

c、當系統記憶體不夠時,會自動**不再使用的記憶體單元,因此程式中不必用delete釋放記憶體空間 。不會**

d 當動態分配記憶體失敗時,系統會立刻崩潰,因此一定要慎用new, 沒有的事

13樓:樂活店小二

c、當系統記憶體不夠時,會自動**不再使用的記憶體單元,因此程式中不必用delete釋放記憶體空間 。 系統有可能給你swap到磁碟上,但是不會幫你**, 系統關機的時候,可以幫你**記憶體的。 或者你程式死掉了,整個程序的記憶體都幫你**了。

c++中怎麼運用動態記憶體分配

14樓:傷之儡

給你講個簡單例子

int*p;

p=new int(0);//分配一個整形的儲存空間把地址返回給指標p,並用0初始化這個空間。

delete p;//釋放該記憶體。

p= new int;//分配一個能儲存10個整形數的儲存空間(陣列)。

delete 【】p;//釋放該存放陣列的記憶體空間。

c++ 動態分配記憶體 記憶體洩漏問題 new

15樓:匿名使用者

可以,只要對相同地址new和delete配對使用都會正確**記憶體。更好的辦法是使用智慧指標unique_ptr和shared_ptr。

16樓:無非灬依舊

可以解決,因為申請的指標q已經指向了p申請的這個int例項,delete的話就是把這個動態分配的空間給釋放掉,所以這種方式是可以解決這裡的記憶體洩露問題。

c++string陣列動態分配

17樓:匿名使用者

string *a;

cin>>n;

a=new string [n];

for(int i=0;i>a[i]; //這裡應該是a

C 中new分配記憶體的問題,C 動態分配記憶體 記憶體洩漏問題 new

這樣是會有記憶體洩漏的,因為第一次執行s new stu 後,系統申請了一塊新的記憶體空間 型別為stu 並把其地址賦給s 第2此執行s new stu後,系統又申請了一塊新的記憶體空間,並把其地址賦給s,此時把s原來的值覆蓋掉了,也就是第一次申請的記憶體空間的地址丟失了 而delete s 只是把...

區域網內使用DHCP伺服器動態分配IP地址。不同網段如何互訪

需要在路由器上配置路由表,路由交換裝置多的話就用動態路由表,少就用靜態路由表。路由交換裝置不同配置方法也不一樣,除了思科華為那些大型路由需要命令配置其他的路由都是傻瓜式操作,登入進去有說明。路由表作用 1 靜態路由表 由系統管理員事先設定好固定的路由表稱之為靜態 static 路由表,一般是在系統安...

C 中指標與動態記憶體分配和記憶體洩漏問題

int main 這段 沒有造成洩漏 int main 這段 出現記憶體洩漏了 int p new int 申請一塊堆區記憶體,就給個名為f吧,現在p指向f p a p指向變數a,是個區域性變數,在棧上分配,此時沒有任何指標堆區記憶體塊f 記憶體f就被孤立起來,無法進行釋放,修改等操作了,等同於無法...