Debuholden

joined 2 years ago
 

Hey, so I've been searching the web for a while for some popular applications that use C. All that I can find so far is, Git, Vim, Linux, and Unix. I also know the Windows kernel uses it a little bit, but that's it. Does anyone know some popular apps that use C? Doesn't have to be programming related, just an actual app that's written in C? Sorry if this question sounds redundant or anything.

3
i use arch btw (programming.dev)
submitted 2 years ago* (last edited 2 years ago) by Debuholden@programming.dev to c/archbtw@programming.dev
 

There were now posts here, so I figured I'd just let you know. ;)

 

I'm trying to create a dynamic array which can be modified using the functions Array_Push(array, val) & Array_Del(array, index). Now the current way I have this I need a variable to keep track of the size of it. My implementation of this concept is to store the data/size in a struct like so:
struct Array {
  void **data;
  int size;
}
However in order to read the actual array you have to type array.data[i] which I think is a little bit redundant. My solution to this was attempting to store the size of the array in a different index. I didn't want to store it inside [0] as that would create a lot of confusion, so I wanted to try storing it inside of [-1]. An obvious problem with this is that [-1] is outside the array. What I did instead was create an array via void **array = malloc(sizeof(void*) * 2) (the * 2 is so when you push with realloc() it doesn't free empty memory,) then setting the size via array[0] = (void *)0. After that I increment the pointer to it via array += 1. However when I try to free it free(array - 1), I end up freeing non malloc()ed. I think this is just an issue with my understanding of pointers, so I wanted to ask where my logic is going wrong, along with if anybody actually knows how to do what I'm trying to do (in the title).

 

Hello, I was trying to configure i3 to match the functionality of vim (i3 uses jkl; because h is mapped to horizontal split), but when I was doing it I was wondering what the reason is behind every vim or vim-like editor using hjkl. It's rather inefficient to have to move your index finger to the h key every time you want to move left. I know that the creator of vi had his hjkl keys mapped to arrow keys, but why hasn't this changed. Is it a historical thing, or is there an actual logical reason.