无效的char阵列分配
Invalid char array assignment
#include<iostream>
#include<string.h>
#include<conio.h>
using namespace std;
int main()
{
char name[30][50];
char aux[50];
int n,ok;
cout<<"number of pupils : ";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"name : ";
cin>>name[i];
}
do
{
ok=0;
for(int i=0;i<n-1;i++)
{
if(strcmp(name[i],name[i+1])>0)
{
aux=name[i+1]; // here is the bug
name[i+1]=name[i];
name[i]=aux;
ok=1;
}
}
}while(ok==1);
for(int i=0;i<n;i++)
{
cout<<name[i]<<endl;
}
}
我知道这是一个菜鸟问题,但是我感谢您的帮助。如何将char [] []分配给char []?这个错误在我的代码中发生了3次,我没有足够的知识来弄清楚为什么
使用char* aux;
代替。
当我们编写char aux[50];
时,我们立即将内存分配为〜50 char
s。在这里,您只需要将指针交换为 char
数组( char
数组数组中的元素,即2d char
阵列,称为 name
),所以 char*
是您要寻找的。
如果您可以使用标准库,请使用 std::swap
,so:
std::swap(name[i], name[i + 1]);
相关文章:
- 二维阵列的动态分配
- 为什么删除分配的阵列会导致内存错误?
- 新的阵列分配
- 分配给阵列时出现分段错误?黑客排名 2D 阵列 - DS.
- 分配/访问2d阵列,使得2d子块是连续的
- 重新分配2D阵列并删除旧阵列
- 轻松C++阵列分配
- 英特尔并行工作室 2015 C++中的 2D 动态分配全局阵列
- 解除分配此特定 2D 阵列的内存
- 我可以在堆栈上分配`std :: array`阵列,而不知道编译时大小
- 通过"Value Template Argument"与常规阵列在堆栈中分配内存
- C - 将所有分配的双阵列对齐至32 bytes
- 重新分配指针阵列的一部分的安全方法
- 动态分配'string'阵列
- 未分配阵列上的编号
- 与其所有者一起分配阵列的正确方法
- 为 C++ + OpenGL + QT 分配阵列
- 分配阵列时bad_alloc
- C++中2D动态内存分配阵列中的空闲分配内存
- C++中的2D动态内存分配阵列