В C99 вы можете предоставить размеры массива перед его передачей:
void array_function(int m, int n, float a[m][n])
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
a[i][j] = 0.0;
}
void another_function(void)
{
float a1[10][20];
float a2[15][15];
array_function(10, 20, a1);
array_function(15, 15, a2);
}
Я сделал предложение в вопросе StackOverflow, путь к выполняет пакетный файл в фоновом режиме (, никакие окна DOS не отобразились )
, Который должен ответить на Ваш вопрос.
Здесь это:
<час>Из Вашего первого сценария, назовите свой второй сценарий со следующей строкой:
wscript.exe invis.vbs run.bat %*
На самом деле, Вы называете vbs сценарий с:
%*
) Затем invis.vbs, назовут Ваш сценарий с Windows Script Host Run () метод , который берет:
, Посмотрите вопрос для полного invis.vbs сценария:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
^
means "invisible window" ---|
<час> Обновление после обратной связи Tammen:
, Если Вы находитесь на сессии DOS и Вы хотите запустить другой сценарий "в фоновом режиме", простое /b
(как детализировано в тот же вышеупомянутый вопрос ) может быть достаточно:
можно использовать
start /b second.bat
для запуска второго пакетного файла асинхронно от первого, которое совместно использует первое окно.
Включайте фразу
@echo off
прямо наверху Вашего bat сценария.