Returning array pointer produces "warning: return from incompatible pointer type"

Returning array pointer produces "warning: return from incompatible pointer type"

By : MsRaman
Date : November 22 2020, 10:33 AM
With these it helps The type of the object you are returning doesn't match the return type of the function:
code :
int * lineToXY(char line[]) { -----+   You've declared lineToXY to return a pointer to
  ...                              |   int, but you declare xypair as an array of
  static double xypair[2]; --------+   double; in the return statement, the expression
  ...                              |   xypair "decays" to an expression of type 
  return xypair; <-----------------+   double *, which is not int *, hence your warning
void lineToXY( char line[], size_t linesize, double xypair[] )
int main( void )
  char inputLine[SOME_SIZE];
  double pair[2];
  lineToXY( inputLine, sizeof inputList, pair );

Share : facebook icon twitter icon
"Warning: assignment from incompatible pointer type" when using a double pointer

"Warning: assignment from incompatible pointer type" when using a double pointer

By : Boris Fortin Côté
Date : March 29 2020, 07:55 AM
This might help you files has type char (*)[128], not char**; there is no second level of pointer (and we're not talking about const yet; it's another can of worms).
This code should not show a warning (except the one for constness)
code :
const char files[][128]={"file1","file2","file3"};
char (*ptr)[128];

C, pointer to function in struct, warning "assignment from incompatible pointer type"

C, pointer to function in struct, warning "assignment from incompatible pointer type"

By : Dmitrij
Date : March 29 2020, 07:55 AM
should help you out I have a struct defined as follow: , Here is your function, and the function-type required, side-by-side:
code :
void BHVR_line_follow(int *currstate)
char (*behave) (int*)
Warning in array of pointers "initialization from incompatible pointer type"

Warning in array of pointers "initialization from incompatible pointer type"

By : tim eldred
Date : March 29 2020, 07:55 AM
To fix the issue you can do ZeroA and so one are pointers to an array of char elements. &ZeroA holds the address of the pointer to the array ZeroA and so to hold it you need char **
The correct way to do it in your example is like this: char *XYZ[11]={ZeroA,OneA,TwoA,ThreeA,FourA,FiveA,SixA,SevenA,EightA,NineA,TenA};
C - "incompatible type" warning upon assigning array to pointer

C - "incompatible type" warning upon assigning array to pointer

By : peeush
Date : March 29 2020, 07:55 AM
it should still fix some issue There are multiple problems in your code:
p should be defined as const char **p to be compatible with const char *list[]. you could initialize the len1 and len2 variables to the computed lengths of the arrays to avoid potential discrepancies on larger sets. the tests on ran1 to select the set are both redundant and potentially incomplete. You should make sure all values of ran1 are covered and let the compiler know. A properly configured compiler with all warnings enabled will complain that p and pcount are potentially uninitialized. you should seed the random number generator just once in your program, otherwise multiple calls to test() occurring in the same second will choose the same word.
code :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

void test(void) {
    const char *list1[] = { "one", "two", "three" }; // first list
    int len1 = sizeof(list1) / sizeof(list1[0]);

    const char *list2[] = { "uno", "dos", "tres", "quatro" }; // second list
    int len2 = sizeof(list2) / sizeof(list2[0]);

    const char **p;            // variable to hold chosen list
    int pcount;                // size of the chosen list
    char word[64];             // chosen word

    int ran1 = rand() % 2;     // random number 0 or 1

    if (ran1 == 0) {
        p = list1; pcount = len1;
    } else {
        p = list2; pcount = len2;

    strcpy(word, p[rand() % pcount]);
    printf("The word is %s.\n", word);

int main() {
    srand(time(NULL));  // seed the random number generator.

    return 0;
C "warning: initialization from incompatible pointer type" when function has an array as an argument

C "warning: initialization from incompatible pointer type" when function has an array as an argument

By : Teemu Joensuu
Date : March 29 2020, 07:55 AM
Any of those help The function type you are trying to declare as the target of the element type of your array has as its third parameter a 2D, variable-length array of const int. In your array declaration, however, you try to declare it as a single const int. These are not compatible.
The clearest way to declare it would be like this:
code :
void(*p[1])(int, int, const int[*][*]) = { min };
void(*p[1])(int, int, const int[][*]) = { min };
Related Posts Related Posts :
  • Program works but outputs trailing garbage values
  • Letting 2 pointer pointing to same address
  • Different ways to print the two-dimensional array's contents
  • C Programming : Confusion between operator precedence
  • C code inside a loop not being executed
  • C - Weird symbols
  • C - Get pointer adress to string
  • how to start a function using a Struct?
  • Trying to tweak sscanf() to ignore \n and \t
  • How to find the inverse of a Rectangular Matrix in C using GSL
  • sizeof() showing different output
  • How to select/read/copy values after specific character in a string
  • Jump from bootloader generates exception
  • Array dropping values, picks up garbage
  • Swig: Syntax error in input(3)
  • multiple definition and making sure function is correctly written
  • MD4 openssl core dumped
  • Undefined-Behavior at its best, is it -boundary break? -bad pointer arithmetic? Or just -ignore of aliasing?
  • Why am i getting problem3.c:20:23: error: expected expression before ‘int’?
  • Right Justified Zero filled String in C
  • C Function with parameter without type indicator still works?
  • How to transmit data from an interrupt handler to an user application?
  • Why do I get the error "bash: ./a.out: Permission denied" when I execute a C program in Linux mint 15
  • syntax of sigchld and its declaration
  • error using g_idle_add() in C++, same thing works in C
  • why if else or nested if else are called single statement in C
  • How do I interpret this printf in C
  • load the functions of a shell script without executing it
  • Is FilterSendNetBufferLists handler a must for an NDIS filter to use NdisFSendNetBufferLists?
  • How to write to flash memory using inline assembly?
  • More Return Statements vs. More Indentation
  • How to show an image on a PictureBox from resource?
  • Having malloced some memory,I could't calculator the proper size of the memories I malloced.I don't know why
  • What is the main difference between integer pointer and character pointer?
  • Why are some functions declared extern and header file not included in source in Git source code?
  • what is the use of fflush(stdin) in c programming
  • Is it safe to return file File descriptor locally allocated from another function In C
  • Changing undefined values of an array
  • What does an empty parameter list mean?
  • using strtol on a string literal causing segmentation fault
  • Same structure objects memory overlap?
  • C-Linux-Any way to pass command "history" to Linux shell?
  • Using #define in defining string size C
  • How to use thread pool and message queues in Multithreaded Matrix Multiplication?
  • Can't find how to select path to run a C program
  • Automatic variable in C not initialized but given fixed value within loop
  • main() function defined without return type gives warning
  • Output of following code with integer, float, char variable
  • why buffer memory allocation error in opencl
  • Why am I getting this error during run-time?
  • Strange behaviour of the pow function
  • task in increment , decrement , printf() , why these are evaluated in this manner in C
  • 28 extra bytes in bss
  • Waiting for multiple events without polling
  • Why are my variables reporting as "undeclared identifier" when compiling?
  • Correct AddNode function but somehing happens when I printf
  • When I traverse in the splay tree, then now which one is root?
  • Data type conversion in Postfix evaluation
  • No output in terminal (Head First C)
  • Data writes over after realloc
  • shadow
    Privacy Policy - Terms - Contact Us © ourworld-yourmove.org