[英]Char Point Memory Allocation to reference address of C++ String?
我想转换一个整数数组 2, 3, 4, 8 5, 7, 9, 12 1, 0, 6, 10
到一个字符串,该矩阵的条目按顺时针顺序附加“2, 3, 4, 8, 12, 10, 6, 0, 1, 5, 7, 9”。
我必须按char * OutBuffer
保留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
分配内存以正确存储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 表上显示不可打印的符号
提前致谢 :) **
首先,在BuildStringFromMatrix
函数下的循环中,您没有在任何地方使用 i 值。 其次, matrix = matrixArray 应该没问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.