编写一个程序,该程序将从
cin
中读取字符到您在免费存储区中分配的数组中。阅读个人 字符,直到输入感叹号(!)。请勿使用std::string
。不用担心内存耗尽。
void resize(char* old,int length)
{
size_t newLength = 4* length;
char* r_ptr = new char[newLength];
memcpy(r_ptr,old,newLength);
length = newLength;
delete[] old;
old = r_ptr;
for (int i = 0; i < newLength; ++i)
{
cin >> *(r_ptr + i);
cout << r_ptr[i];
}
}
int main()
{
int len;
cin >> len;
char* ptr = new char[len];
for (int i = 0; i < len; ++i)
{
cin >> *(ptr + i);
cout << ptr[i];
}
resize(ptr,len);
}
len = 5;
cin >> *(ptr + i)=“我在这里放了一堆字”
现在我得到了:“ Iputhereabunchofword”
谢谢你们!现在,我设法分配了一个新数组,以防第一个数组被填满。而且是它的两倍。 现在我还有几个问题:
- 请推荐一个很好的数据结构课程。
- 如何分配一个新数组,以便它将所有文本而不是 只是其中更大的一部分。
- 毕竟还正确吗?