I recently started learning C since I want to be able to write Python extension modules. In fact, there is no need for it, but I simply want to try something new ...
I tried to implement the bubblesort algorithm in C and to use it in python; bubblesort.c compiles fine, but whenever I want to import the modul and call the function I get a segmentation fault. This is what the code looks like: static PyObject *py_bubblesort(PyObject *self, PyObject *args) { PyObject *seq = NULL, *item, *newseq = NULL; int seqlen, i; if(!PyArg_ParseTuple(args, "O", &seq)) { return NULL; } seq = PySequence_Fast(seq, "argument must be iterable"); if(!seq) { return NULL; } seqlen = PySequence_Fast_GET_SIZE(seq); int list[seqlen]; for (i = 0; i <= seqlen; i++) { item = PySequence_Fast_GET_ITEM(seq, i); list[i] = item; } bubblesort(list, seqlen); newseq = PyList_New(seqlen); if(!newseq) { return NULL; } for(i = 0; i < seqlen; i++) { PyList_SetItem(newseq, i, list[i]); } return newseq; bubblesort(int list[], int seqlen) is doing the actual job and it is working. What did I do wrong? As I am quite new to C, I probably made many mistakes, so please feel free to correct me. Cheers, Fabian -- http://mail.python.org/mailman/listinfo/python-list