Problem: in C + +, I'm used to initializing arrays with memset functions, such as:
int sz = 100;int *a = (int*) malloc (sizeof (int) * SZ); memset (A,0,sizeof (a));
The above code dynamically opens an int array A, the size is SZ, and the open memory is assigned to ASCII code 0
When PHP calls this C + + code (using the URL call php function), found that the Memset function does not work, the memory of array A is not assigned value, resulting in a number of subsequent program errors, troubleshooting found this problem
Cause: The root cause is that when PHP calls C + +, sizeof (a) does not return a pointing to the size of the contiguous memory space, but only returns the size of the pointer itself, so memset does not play its proper role.
Workaround: In the third parameter of Memeset, use sizeof (int) * SZ instead of sizeof (a) to pass in the actual size of the array as a parameter so that the Memset function works
When PHP calls C + + extensions, many library functions that involve pointers in C + + are problematic and sometimes have to be written on their own, possibly because of the memory management mechanism of the PHP call extension.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
The above describes the PHP call C + + extension when the memset/sizeof function is invalid, including the aspects of the content, I hope the PHP tutorial interested in a friend helpful.