如果在編譯時未知大小,這是否被認爲是在固定char數組上動態分配的?我的老師說:「在C++中,你不能分配與變量length.You固定數組必須動態地分配固定改編 2.列出項目如何在編譯時未知大小的情況下動態分配固定字符數組?
AYS如果大小在編譯時已知的。」 如何在編譯時如果size不知道n就動態地分配固定char數組?我試過兩個例子。我不知道是否正確。
#include<iostream>
int main() {
std::cout<<"enter the length of string\n";
int length;
std::cin>>length;
char *ch=new char[length];
for(int i=0;i<length;i++)
std::cin>>ch[i];
std::cout<<ch;
delete[]ch;
ch=nullptr;//c++11 is accepted
}
它打印沒有whitespace的字符串。我無法在這裏打印空白。這不顯示whitespce。
2)
int main() {
char *ch=new char;
std::cout<<"enter a string\n";
std::cin.getline(ch,255);
std::cout<<ch<<'\n';
delete[]ch;
ch=nullptr;//c++11 is accepted ## Heading ##
std::cout<<" after null pointer:"<<ch;
}
這被認爲是對固定字符數組動態分配,如果尺寸不知道在編譯時或這兩者都是不正確?
'的char * CH =新的char ;'只分配一個'char'。 'std :: cin >> ch [i];'跳過空格。你可以使用'noskipws'來關閉它。 –
這是'std :: vector'的用途。 –
你不是null-terminating'ch'。 –