代碼C++指針數組
#include "stdafx.h"
#include <iostream>
void someFunc(double* pDoubleArray, int length)
{
double* pNewDoubleArray = new double[length];
for(int i = 0; i < length; i++)
{
pNewDoubleArray[i] = i * 3 + 2;
}
pDoubleArray = pNewDoubleArray;
}
int main()
{
double dbls[] = { 1, 2, 3, 4, 5 };
int length = sizeof dbls/sizeof dbls[0];
std::cout << "Before..." << std::endl;
for(int i = 0; i < length; i++)
{
std::cout << dbls[i] << ", ";
}
std::cout << std::endl;
someFunc(dbls, length);
std::cout << "After..." << std::endl;
for(int i = 0; i < length; i++)
{
std::cout << dbls[i] << ", ";
}
std::cout << std::endl;
while(true){ }
return 0;
}
輸出
Before...
1, 2, 3, 4, 5,
After...
1, 2, 3, 4, 5,
這裏就是我想要做的事: 1.創建一個數組,並用一些值填充它 2.通行證該數組作爲指向函數的指針,該函數將創建一個新數組並重新分配已傳入新創建數組的數據。 3.打印出更改s
雖然我沒有看到任何變化,但我不知道爲什麼。
嘆息。再一次,std :: vector是你真正想要的。 – 2011-05-12 18:31:53
但是沒有通過引用傳遞'vector'會導致同樣的問題。 –
2011-05-12 18:32:52
你能確認你確實想創建一個新的數組,而不是修改已有的數組嗎?你的'main'函數似乎想要修改原始數組。 – 2011-05-12 18:42:30