我得到以下代码:
char buffer[2047];
int charsRead;
do {
if(fscanf(file, "%2047[^\n]%n%*c", buffer, &charsRead) == 1) {
// Do something
}
} while (charsRead == 2047);
Run Code Online (Sandbox Code Playgroud)
我想将此代码转换为使用动态分配的变量,以便在调用此代码时,我不会遇到大量内存泄漏.因此,我试过这个:
char *buffer = malloc(sizeof(char) * 2047);
int *charsRead = malloc(sizeof(int));
do {
if(fscanf(file, "%2047[^\n]%n%*c", *buffer, charsRead) == 1) {
// Do something
}
} while (*charsRead == 2047);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我总是得到"EXC_BAD_ACCESS"错误,就在使用fscanf调用的if语句之前.我究竟做错了什么?
谢谢你的帮助!
- Ry
我正在尝试java.awt.image.BufferedImage使用此代码进行扩展:
import java.awt.image.BufferedImage;
public class FSImage extends BufferedImage {
public FSImage() {
// empty constructor
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到一些错误:
no suitable constructor found for BufferedImage()
constructor java.awt.image.BufferedImage.BufferedImage(java.awt.image.ColorModel, java.awt.image.WritableRaster, boolean, java.util.Hashtable<?,?>) is not applicable (actual and formal argument lists differ in length)
...
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在我的 CSS 中,我目前正在使用这个:
img.info {
max-width: 620px;
max-height: 800px;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我的图像小于max-width和时max-height,它会被放大。我认为标准行为是不会发生缩放,但显然情况并非如此。有什么办法可以防止图像放大吗?
编辑:我找到了问题的根源,它位于我的程序的完全不同的部分。我上面发布的代码工作得很好。抱歉这个不必要的帖子!
这是一个非常简单的C程序,我无法弄清楚它崩溃的原因:
int main () {
size_t argc = 2;
char **argv = malloc(argc * sizeof(char *));
for (int i = 0; i < 20; i++) {
if (i >= argc) {
argc *= 2;
argv = realloc(argv, argc);
}
argv[i] = strdup("hello world!");
}
for (int i = 0; i < 20; i++) {
printf("argv[%d] = \"%s\"\n", i, argv[i]); // it crashes on this line
free(argv[i]);
}
free(argv);
}
Run Code Online (Sandbox Code Playgroud)