C++ 这段代码的输出是什么?第13行到底发生了什么?
} 那么StorageArr[n]=arr[k]是如何工作的呢。我的意思是,如果我们分配n=5,那么arr[k]的所有值都将被分配到相同的位置StorageArr[5],或者arr[k]的值将存储在StorageArr中,就像先存储在第0个位置,然后存储在第1个位置,然后依次存储到第4个位置……如果n==5,那么 将始终将arr[k]分配给StorageArr[5]。这就是代码所说的,这就是它在工作程序中所做的。我不确定您是从哪里想到它可能会分配给StorageArr[0]然后再分配给StorageArr[1]等等 代码中有很多错误,仅举一个,看看上面的代码,k的值是多少?在任何时候你都不会给它一个值。但是你到处都在使用它的价值。这意味着您的整个程序都有未定义的行为,试图确定它将做什么是毫无意义的C++ 这段代码的输出是什么?第13行到底发生了什么?,c++,c++11,C++,C++11,} 那么StorageArr[n]=arr[k]是如何工作的呢。我的意思是,如果我们分配n=5,那么arr[k]的所有值都将被分配到相同的位置StorageArr[5],或者arr[k]的值将存储在StorageArr中,就像先存储在第0个位置,然后存储在第1个位置,然后依次存储到第4个位置……如果n==5,那么 将始终将arr[k]分配给StorageArr[5]。这就是代码所说的,这就是它在工作程序中所做的。我不确定您是从哪里想到它可能会分配给StorageArr[0]然后再分配给Stora
修复错误,程序将以更可预测的方式运行。
StAtAREAR正在被从边界访问。代码似乎满是未定义的行为。而不是有效的C++。SturaGrr[n]=ARR[K]是如何工作的,它不起作用。如果你写的东西超过了数组,这就是未定义的行为。当代码的行为未定义时,就没有必要解释奇怪的行为。最好避免这种奇怪的行为,通过编写代码来定义良好的行为。此外,声明中的Car StAtAgReRe[n]和Car ARR[K]在C++中都是无效的,因为N和K是变量。不幸的是,由于与C99兼容,您使用的编译器允许将此类声明作为非标准扩展。谢谢@john#include <iostream>
#include <string.h>
using namespace std;
int main() {
int num , n , n1 , k , x = 0;
cout << "Enter the no. of vertices: " ;
cin >> n;
char StorageArr[n];
char arr[k];
for(k = 0; k< n ; k++){
cout<< "arr[" << k << "] : ";
cin >> arr[k] ;
StorageArr[n] = arr[k];
}
int len = sizeof(StorageArr)/ sizeof(StorageArr[0]);
cout << "The length of the array is : " << len << endl;
for(int i= 0 ; i< len ; i++){
for(int j = 0; j< len ; j++ ){
cout<<"\n\t" <<"Element at " << StorageArr[i] << StorageArr[j] << ": " ;
cin >> num;
if(i==j && num == 0){
x++;
}
}
}
if(x == len){
cout<<"This is a complete graph...";
}else{
cout<< "This is not a complete graph..." ;
}
return 0;
StorageArr[n] = arr[k];