我想在C++中指向一個數組,有可能嗎?在C++中指向一個數組?
我的主要代碼:
#include "ArrayPointerClass.h"
#include "stdafx.h"
#include <iostream>
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
float arr[2];
ArrayPointerClass::pointingArray(&arr);
return 0;
}
ArrayPointerClass.h
#pragma once
static class ArrayPointerClass
{
public:
ArrayPointerClass();
~ArrayPointerClass();
static void pointingArray(float* arr[2]);
};
ArrayPointerClass.cpp
#include "stdafx.h"
#include "ArrayPointerClass.h"
ArrayPointerClass::ArrayPointerClass()
{
}
ArrayPointerClass::~ArrayPointerClass()
{
}
void ArrayPointerClass::pointingArray(float* arr[2]){
float newArray[2] = { 2.2f, 2.2f };
*arr = newArray;
}
我得到這個錯誤:錯誤 3錯誤C2653:「ArrayPointerClass ':不是類或命名空間名稱c:\ users \ alex \ documents \ visual studio 2013 \ projects \ pointerarray \ pointerarray \ pointerarray.cpp 13 1 PointerArray
錯誤3錯誤C3861:'pointingArray':標識符未找到c:\ users \ alex \ documents \ visual studio 2013 \ projects \ pointerarray \ pointerarray \ pointerarray.cpp 13 1指針陣列
我知道在C++數組中,不允許定義長度的數組。這是原因嗎?
感謝您的支持
您不能分配到C數組如果這是你的意圖。 'std :: array'工作得更好,指針和參考語法就像正常一樣。 – chris
使用'std :: vector'。這就是它的目的。 –
這個代碼中沒有任何答案(當前)提到的一個問題是你的第一個錯誤的來源:你在'stdafx.h',VC++的預編譯頭文件(PCH)之前包含'ArrayPointerClass.h'。當它解析PCH時,它會跳過所有內容,包括'stdafx.h',導致你的'ArrayPointerClass.h'頭被跳過並且不包含在內,這會產生你的問題中報告的錯誤。 – 1201ProgramAlarm