invalid conversion from 'int*' to 'int'
can you guys help fix this error plz
Im using myprogramming lab,
the problem is this:
The variables arr1 and arr2 have been declared as pointers to integers. An array of 10 elements has been allocated, its pointer assigned to arr1, and the elements initialized to some values. Allocate an array of 20 elements, assign its pointer to arr2, copy the 10 elements from arr1 to the first 10 elements of arr2, and initialize the remander of the elements of arr2 to 0.
here is my code:
1 main() {
2 int *arr1, *arr2;
3
4 for(int i = 0; i < 20; i++)
5 {
6 arr2[i] = new int(i);
7 if(i < 10)
8 {
9 arr2[i] = arr1[i];
10 }
11 else
12 {
13 arr2[i] = 0;
14 }
15 }
Re: invalid conversion from 'int*' to 'int'
Quote:
Originally Posted by
mejiac3
... An array of 10 elements has been allocated, its pointer assigned to arr1, and the elements initialized to some values.
The code snippet you showed does NOT contain this part. :cool:
Re: invalid conversion from 'int*' to 'int'
Quote:
Originally Posted by
mejiac3
can you guys help fix this error plz
Im using myprogramming lab,
the problem is this:
The variables arr1 and arr2 have been declared as pointers to integers. An array of 10 elements has been allocated, its pointer assigned to arr1, and the elements initialized to some values. Allocate an array of 20 elements, assign its pointer to arr2, copy the 10 elements from arr1 to the first 10 elements of arr2, and initialize the remander of the elements of arr2 to 0.
here is my code:
1 main() {
2 int *arr1, *arr2;
3
4 for(int i = 0; i < 20; i++)
5 {
6 arr2[i] = new int(i);
7 if(i < 10)
8 {
9 arr2[i] = arr1[i];
10 }
11 else
12 {
13 arr2[i] = 0;
14 }
15 }
Hi it seems in your code you had conflicting idea ... you declare arr1 and arr2 as interger pointer you should allocated them something like this outside the loop ..
int *arr1, *arr2;
Code:
arr1 = new int[10];
this means arr1 is a pointer of array of 10 integer, but if you want an array that holds pointer in each elements you should do something like this.
Code:
int *arr1[10], *arr2[10];
this means arr1 and arr2 are arrays of integer pointers
I tried to modify your code and remove the error
Code:
main() {
int *arr1[10], *arr2[10];
for(int i = 0; i < 20; i++)
{
arr2[i] = new int(i);
if(i < 10)
{
arr2[i] = arr1[i];
}
else
{
arr2[i] = 0;
}
}
}
I hope it will help
Re: invalid conversion from 'int*' to 'int'
Quote:
Originally Posted by
himitsujanai
I tried to modify your code and remove the error
Code:
int *arr1[10], *arr2[10];
for(int i = 0; i < 20; i++)
{
arr2[i] = new int(i);
Do you see a problem here?
Regards,
Paul McKenzie
Re: invalid conversion from 'int*' to 'int'
I this case, more than likely you don't really want to be using pointers and new anyway.