我想转换一个整数数组 2,3,4,8 5,7,9,12 1,0,6,10,
到一个字符串,该字符串以顺时针顺序附加该矩阵的条目 “2,3,4,8,12,10,6,0,1,5,7,9”。
我必须保持int * Matrix
和char * OutBuffer
的声明
int main()
{
int matrixArray[rowCount][columnCount] =
{ {2, 3, 4, 8},
{5, 7, 9, 12},
{1, 0, 6, 10}};
int * matrix;
string prebuffer;
char * outBuffer;
outBuffer = new (nothrow) char[24];
matrix = &matrixArray[0][0];
BuildStringFromMatrix(matrix, rowCount, columnCount, outBuffer);
}
在传入之前我声明并解决了所有指针。但是,我不确定是否要为outBuffer
分配内存以正确存储预缓冲的字符?
void BuildStringFromMatrix(int* Matrix, int NumRows, int NumColumns, char * OutBuffer)
{
string prebuffer;
bool stringLeft = true;
int i = 0;
while (stringLeft)
{
int clockwiseDir[12] = { 1,1,1,4,1,1,0,4,-4,-1,-1,-1 };
prebuffer = to_string(Matrix[i]) + ", ";
OutBuffer = new char [prebuffer.length() + 1];
cout << prebuffer;
i += clockwiseDir[i];
if (i == 6)
{
prebuffer = to_string(Matrix[i]) + " ";
cout << prebuffer;
stringLeft = false;
}
}
}
**当我没有实现OutBuffer
时,我可以顺时针方式访问和打印矩阵
但是我如何使用OutBuffer来引用和打印预缓冲内容? 我需要数字才能在ASCII表上显示不可打印的符号
提前致谢:) **
答案 0 :(得分:-3)
首先,在BuildStringFromMatrix函数下的循环中,你没有在任何地方使用你的i值。 其次,matrix = matrixArray应该没问题。