在C ++中动态分配指针数组

时间:2014-10-05 17:47:01

标签: arrays pointers memory dynamic allocation

我正在编写一个程序,它应该查看一个指向整数的指针数组,然后让用户输入一个目标,然后程序应该将找到的目标替换为1,其他值替换为0。我正在尝试动态分配一个指针数组,但由于某些原因它不会让我。我也无法从函数中返回新数组(在它被修改之后),因此我可以在main中打印它。我的指针还不是很好,所以任何帮助都会受到赞赏。

谢谢!

include<iostream>
using namespace std;
int* flagArray (int *p[], int n, int x)     
{   
    for(int i = 0;i<n;i++)
    {
        if(x == *p[i])
        {
            *p[i] = 1;
        }
        else
            *p[i] = 0;
    }
    return *p; //Why wont this return the adresses of each of the 10 elements ? it only returns the adress of the first element.

}
void main()
{
    int const size = 10;
    int target;
    int *arr[] = new int*[size];    
    cout<<"fill the array : "<<endl;
    for(int i = 0;i<size;i++)
    {
        cin>>*arr[i];
    }
    cout<<"Enter the target : ";
    cin>>target;
    for(int j = 0;j<size;j++)
    {
    cout<<*(flagArray(arr,size,target))<<endl;  // works for first element only , rest are 0s since theyre not checked
    }
    delete []*arr;
}

0 个答案:

没有答案